Hadopp的基本框架是用java实现的,而各类书籍基本也是以java为例实现mapreduce,但笔者日常工作都是用python,故此找了一些资料来用python实现mapreduce实例。
一、环境
2、python3.5
二、基本思想介绍
使用python实现mapreduce调用的是Hadoop Stream,主要利用STDIN(标准输入),STDOUT(标准输出)来实现在map函数和reduce函数之间的数据传递。
我们需要做的是利用python的sys.stdin读取输入数据,并把输入传递到sys.stdout,其他的工作Hadoop的流API会为我们处理。
三、实例
以下是在hadoop官网下载的python版本mapper函数和reducer函数,文件位置默认在/usr/local/working中,
1、mapper.py
(1)代码
import sys
#输入为标准输入stdin
for line in sys.stdin:
#删除开头和结果的空格
line = line.strip( )
#以默认空格分隔行单词到words列表
words = line.split( )
for word in words:
#输出所有单词,格式为“单词,1”以便作为reduce的输入
print('%s\t%s'